লারাভেল এলোকোয়েন্ট কালেশন (Laravel Eloquent Collection)

Web Development - লারাভেল (Laravel) - লারাভেল ইলোকোয়েন্ট ওআরএম (Laravel Eloquent ORM) |
2
2

লারাভেল (Laravel) একটি অত্যন্ত শক্তিশালী PHP ফ্রেমওয়ার্ক, যা ডেভেলপারদের দ্রুত এবং কার্যকরীভাবে অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এর মধ্যে এলোকোয়েন্ট কালেশন (Eloquent Collection) একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য। এটি একটি আরামদায়ক এবং শক্তিশালী টুল যা ডাটাবেইজ থেকে রেকর্ডগুলো সংগ্রহ করার পর তাদের ওপর নানা ধরনের অপারেশন করতে সাহায্য করে।

এলোকোয়েন্ট কালেশন কি?

এলোকোয়েন্ট কালেশন (Eloquent Collection) হল একটি বস্তু (object) যা ডাটাবেইজ থেকে ফেরত আসা এক বা একাধিক মডেল ইনস্ট্যান্স ধারণ করে। এটি একটি বিশেষ ধরনের অ্যারে (array), যা রেকর্ডগুলোর ওপর বিভিন্ন ধরনের কার্যকলাপ পরিচালনা করতে পারে। এলোকোয়েন্ট কালেশন ব্যবহার করে আপনি ডাটাবেইজ থেকে ফেচ করা ডেটা সহজেই ম্যানিপুলেট (manipulate) করতে পারেন, যেমন ফিল্টারিং, ম্যাপিং, অ্যাগ্রিগেটিং ইত্যাদি।

এলোকোয়েন্ট কালেশন এর বৈশিষ্ট্য

  • মডেল ইন্টারঅ্যাকশন: কালেশনটি একটি অ্যারে হিসেবে কাজ করে, কিন্তু এটি মডেল ক্লাসের সাথে সম্পূর্ণরূপে সংযুক্ত থাকে, তাই আপনি সরাসরি মডেলগুলোর মেথড ব্যবহার করতে পারেন।
  • চেইনেবল মেথড: এলোকোয়েন্ট কালেশন অত্যন্ত চেইনেবল, অর্থাৎ একাধিক মেথড একসাথে ব্যবহার করা যায়।
  • ফিল্টারিং, ম্যাপিং এবং রিডাকশন: এলোকোয়েন্ট কালেশন ডেটাকে ফিল্টার, ম্যাপ বা রিডিউস (reduce) করতে সাহায্য করে।
  • আধুনিক ফিচার সমর্থন: এলোকোয়েন্ট কালেশন ফিচার যেমন, পেজিনেশন, ম্যাপিং, অ্যাগ্রিগেটিং সহ আরও অনেক কিছু সরবরাহ করে।

কালেশন তৈরি করা

লারাভেল ইলেকোয়েন্ট কালেশন সাধারণত মডেল থেকে ডেটা ফেচ করার পর তৈরি হয়। নিচে একটি উদাহরণ দেওয়া হল:

use App\Models\Post;

$posts = Post::all();

এখানে, Post::all() কমান্ডটি posts টেবিলের সমস্ত রেকর্ড ফিরিয়ে দেবে এবং একটি কালেশন ইনস্ট্যান্স তৈরি হবে।

কালেশন মেথড

লারাভেল এলোকোয়েন্ট কালেশন বেশ কিছু গুরুত্বপূর্ণ মেথড সরবরাহ করে যা ডেটার উপর বিভিন্ন অপারেশন করতে সাহায্য করে। নিচে কিছু প্রধান মেথডের উদাহরণ দেওয়া হল:

each() মেথড

each() মেথডের মাধ্যমে আপনি কালেশনের প্রতিটি আইটেমের উপর একটি কাজ করতে পারেন।

$posts->each(function($post) {
    echo $post->title;
});

এই কোডটি কালেশন থেকে প্রতিটি Post এর title প্রিন্ট করবে।

filter() মেথড

filter() মেথড ব্যবহার করে আপনি কালেশন থেকে নির্দিষ্ট শর্ত অনুসারে আইটেম ফিল্টার করতে পারেন।

$filteredPosts = $posts->filter(function($post) {
    return $post->status == 'published';
});

এখানে, filter() মেথডটি status কলামের মান যদি published হয়, তবে সেই রেকর্ডগুলোকে ফিরিয়ে দেবে।

map() মেথড

map() মেথডের মাধ্যমে আপনি কালেশন প্রতিটি আইটেমের মান পরিবর্তন বা ট্রান্সফর্ম (transform) করতে পারেন।

$titles = $posts->map(function($post) {
    return $post->title;
});

এখানে, map() মেথডটি প্রতিটি পোস্টের title রিটার্ন করবে এবং একটি নতুন কালেশন তৈরি হবে।

pluck() মেথড

pluck() মেথড ব্যবহার করে আপনি শুধুমাত্র নির্দিষ্ট কলামের মান বের করতে পারেন।

$titles = $posts->pluck('title');

এটি posts টেবিলের সব title কলাম থেকে মান সংগ্রহ করবে।

reduce() মেথড

reduce() মেথড কালেশন থেকে একটি একক মান তৈরি করতে ব্যবহৃত হয়।

$totalLikes = $posts->reduce(function($carry, $post) {
    return $carry + $post->likes;
}, 0);

এখানে, reduce() মেথডটি পোস্টের likes সংখ্যা গুলি যোগ করে একটি মোট পরিমাণ বের করবে।

sortBy() মেথড

sortBy() মেথড ব্যবহার করে আপনি কালেশনটি কোনো নির্দিষ্ট কলামের ভিত্তিতে সাজাতে পারেন।

$sortedPosts = $posts->sortBy('created_at');

এটি পোস্টগুলোকে created_at কলামের ভিত্তিতে সাজাবে।

first() মেথড

first() মেথডটি কালেশন থেকে প্রথম আইটেমটি বের করে আনে।

$firstPost = $posts->first();

এখানে, প্রথম পোস্টটি রিটার্ন করা হবে।

কালেশন ফাংশনালিটি এবং অ্যাগ্রিগেটিং

এলোকোয়েন্ট কালেশন বেশ কিছু অ্যাগ্রিগেটিং ফাংশনও সরবরাহ করে, যেমন:

  • count(): কালেশনে মোট আইটেমের সংখ্যা।
  • sum(): নির্দিষ্ট কলামের মোট যোগফল।
  • avg(): নির্দিষ্ট কলামের গড় মান।
  • min() এবং max(): নির্দিষ্ট কলামের সর্বনিম্ন এবং সর্বোচ্চ মান।
$totalPosts = $posts->count();
$totalLikes = $posts->sum('likes');
$averageLikes = $posts->avg('likes');

পেজিনেশন (Pagination)

এলোকোয়েন্ট কালেশন পেজিনেশন সমর্থন করে, যার মাধ্যমে আপনি ডেটাকে বিভিন্ন পেজে ভাগ করে দেখাতে পারেন।

$posts = Post::paginate(10);

এটি প্রতি পেজে ১০টি পোস্ট প্রদর্শন করবে।


এলোকোয়েন্ট কালেশন লারাভেল ডেভেলপমেন্টে একটি অত্যন্ত শক্তিশালী টুল। এটি ডাটাবেইজ থেকে ফেচ করা ডেটাকে ম্যানিপুলেট করার জন্য সহজ এবং চমৎকার মেথড সরবরাহ করে, যা ডেভেলপারদের কোডিং প্রক্রিয়া দ্রুত এবং কার্যকরী করতে সহায়তা করে।

Content added By
Promotion